Global Patterns and Inequalities in Adolescent Mortality: A UNICEF Data Analysis

UNICEF Global Adolescent Mortality Story

Prabhjas Singh - prabhjas.singh2@mail.dcu.ie


📝 Executive Summary & Project Details

A Comprehensive Visualization and Analysis Project

Name: Prabhjas Singh (16815)
University: Dublin City University
Program: MSc in Management (Strategy)
Module: BAA1030 – Data Analytics and Storytelling
Submission Date: 27 April 2025


Adolescence marks a critical stage of human development, where lifelong health trajectories are formed. Despite improvements in global child health, adolescent mortality—especially among 10–14 year olds—remains a significant concern. This project explores mortality patterns through geographic mapping, gender analysis, and economic correlations, supported by global datasets. Visual narratives are developed to reveal inequalities, highlight critical intervention points, and align strategies with the UN Sustainable Development Goals (SDGs).

Show Code
import pandas as pd
from plotnine import *
import plotly.express as px

indicator = pd.read_csv('unicef_indicator_1_cleaned.csv')
metadata = pd.read_csv('unicef_metadata_cleaned.csv')

indicator.columns = indicator.columns.str.strip().str.lower()
metadata.columns = metadata.columns.str.strip().str.lower()

data = pd.merge(indicator, metadata, on='country', how='left')

latest_year = data['time_period'].max()

🗺️ Global Mortality Mapping: Regional Inequalities

Study Focus: Visualize global mortality rates geographically.
Evaluation Goal: Identify regional mortality hotspots where adolescents are most vulnerable.

Show Code
import pandas as pd
import plotly.express as px

indicator = pd.read_csv('unicef_indicator_1_cleaned.csv')
metadata = pd.read_csv('unicef_metadata_cleaned.csv')

indicator.columns = indicator.columns.str.strip().str.lower()
metadata.columns = metadata.columns.str.strip().str.lower()

data = pd.merge(indicator, metadata, on='country', how='left')
data['country'] = data['country'].str.title()
data = data.dropna(subset=['obs_value'])
data = data[data['time_period'] % 5 == 0]

fig = px.choropleth(
    data,
    locations="country",
    locationmode="country names",
    color="obs_value",
    color_continuous_scale=[
        (0.0, "rgb(255,245,245)"),
        (0.3, "rgb(255,200,200)"),
        (0.6, "rgb(255,100,100)"),
        (1.0, "rgb(178,34,34)")
    ],
    range_color=(0, 10),
    animation_frame="time_period",
    title="Animated Global Adolescent Mortality Rates (10–14 years)",
    labels={'obs_value': 'Mortality Rate (per 1,000)'}
)

fig.update_layout(
    geo=dict(showframe=False, showcoastlines=False),
    margin={"r":0, "t":50, "l":0, "b":0},
    sliders=[{
        "currentvalue": {"prefix": "Year: "}
    }]
)

fig.show()
Note

Insight:
🔥 Higher mortality rates → Darker red
🩸 Lower mortality rates → Very light red

Sub-Saharan Africa and South Asia display the highest adolescent mortality rates, demonstrating entrenched global health inequalities that require focused interventions.


🌍 Global Gender Differences in Adolescent Mortality (Top 10 Countries)

Study Focus: Compare adolescent mortality between genders globally, focusing on the highest-risk countries.
Evaluation Goal: Identify gender-driven disparities in mortality rates.

Show Code
latest_data = data[(data['time_period'] == latest_year) & (data['sex'].isin(['Male', 'Female']))]

avg_mortality_gender = latest_data.groupby(['country', 'sex'])['obs_value'].mean().reset_index()

top10_male = avg_mortality_gender[avg_mortality_gender['sex'] == 'Male'].nlargest(10, 'obs_value')
top10_female = avg_mortality_gender[avg_mortality_gender['sex'] == 'Female'].nlargest(10, 'obs_value')

top10_combined = pd.concat([top10_male, top10_female])

(
    ggplot(top10_combined) +
    aes(x='country', y='obs_value', fill='sex') +
    geom_bar(stat='identity', position='dodge') +
    scale_fill_manual(values={"Male": "#17a2b8", "Female": "#e377c2"}) +
    theme_minimal() +
    labs(
        title='Top 10 Countries by Gender: Adolescent Mortality Rates',
        x='Country',
        y='Mortality Rate (per 1,000)',
        fill='Gender'
    ) +
    theme(
        plot_title=element_text(size=18, face="bold"),
        axis_title_x=element_text(size=14),
        axis_title_y=element_text(size=14),
        axis_text_x=element_text(size=12, rotation=45, hjust=1),
        axis_text_y=element_text(size=12),
        legend_title=element_text(size=14),
        legend_text=element_text(size=12)
    )
)

Warning

Insight:
Males consistently experience higher adolescent mortality rates compared to females, with Sub-Saharan Africa countries occupying most top slots.


💵 Economic Influence on Adolescent Survival: A GDP-Based Analysis

Study Focus: Analyze how economic development (GDP per capita) correlates with adolescent mortality.
Evaluation Goal: Reveal whether rising national wealth translates into lower mortality risk.

Show Code
bins = [0, 1000, 5000, 10000, 50000, 1000000]
labels = ['<1k', '1k-5k', '5k-10k', '10k-50k', '>50k']
data['gdp_band'] = pd.cut(data['gdp per capita (constant 2015 us$)'], bins=bins, labels=labels)

latest_gender_data = data[(data['time_period'] == latest_year) & (data['sex'].isin(['Male', 'Female']))]
avg_band_mortality = latest_gender_data.groupby(['gdp_band', 'sex'])['obs_value'].mean().reset_index()

(
    ggplot(avg_band_mortality) +
    aes(x='gdp_band', y='obs_value', group='sex', color='sex') +
    geom_line(size=2) +
    geom_point(size=3) +
    scale_color_manual(values={"Male": "#17a2b8", "Female": "#e377c2"}) +
    theme_minimal() +
    labs(
        title='Average Mortality Rate by GDP Band (Gender Split)',
        x='GDP Band',
        y='Average Mortality Rate (per 1,000)',
        color='Gender'
    ) +
    theme(
        plot_title=element_text(size=18, face="bold"),
        axis_title_x=element_text(size=14),
        axis_title_y=element_text(size=14),
        axis_text_x=element_text(size=12),
        axis_text_y=element_text(size=12),
        legend_title=element_text(size=14),
        legend_text=element_text(size=12)
    )
)

Warning

Insight:
There is a sharp drop in adolescent mortality after countries exceed a GDP per capita threshold of ~$10,000, affirming the role of economic development in advancing youth survival.


🌎 SDG Alignment

SDG 3: Ensure healthy lives and promote well-being for all at all ages.

SDG 4: Ensure inclusive and equitable quality education.

SDG 16: Promote peaceful and inclusive societies and provide access to justice for all.

🧩 Conclusion: Addressing Global Adolescent Health Disparities

Key Findings:

- Males are at higher mortality risk globally.

- Mortality clusters strongly by region and income.

- Economic growth correlates with improved youth survival.

Strategic Recommendations:

- Strengthen health infrastructures in high-burden regions.

- Implement gender-sensitive adolescent health policies.

- Leverage economic development for health equity.


📚 References

UNICEF Official Website: https://www.unicef.org